import { loginApi } from '@/api/user'
import { setToken as setTokenFn, getToken, delToken } from '@/utils/storage'
const state = {
  // 当你页面第一次进入 或者页面刷新进行赋值
  token: getToken() || ''
}
const getters = {}
const mutations = {
  // mutations中的方法 是需要通过commit来调用的，并不是直接调用
  setToken (state, newToken) {
    state.token = newToken
    setTokenFn(newToken)
  },
  removeToken (state) {
    state.token = ''
    delToken()
  }
}
const actions = {
  // async 修饰的方法 默认返回一个promise （loginAsync是一个异步方法）
  async loginAsync (store, data) {
    try {
      const res = await loginApi(data)
      store.commit('setToken', res.data.token)
    } catch (error) { }
  }
}

// 分模块的时候别忘了加命名空间 namespaced:true
export default {
  namespaced: true,
  state,
  getters,
  mutations,
  actions
}
